package com.baishancloud.log.douyin.demand2

import scala.beans.BeanProperty

/**
 *
 * @author ziqiang.wang 
 * @date 2022/3/1 11:16
 */
class Calculate extends Serializable


/**
 * 入 mallard 的tag，也就是需求中的维度字段
 *
 * @param domain 域名字符串
 * @param isp    运营商字符串
 * @param a      url参数 a 的值
 */
case class Tags(@BeanProperty domain: String, @BeanProperty isp: String, @BeanProperty a: String) extends Serializable

/**
 * 入 mallard 的数据对象
 *
 * @param time     时间，1min，秒值
 * @param step     步长，固定60
 * @param name     监控图表查询的表名
 * @param endpoint 上报数据的主机的机器名，为空自动补充
 * @param value    数值，该需求中表示总请求书
 * @param tags     标签，所有维度
 */
case class Result2(@BeanProperty time: Long, @BeanProperty step: Long, @BeanProperty name: String, @BeanProperty endpoint: String, @BeanProperty value: Long, @BeanProperty tags: Tags) extends Serializable {
  def getKey: ResultKey2 = {
    ResultKey2(time, tags.domain, tags.isp, tags.a)
  }
}


/**
 * 结果值的key，用来对数据进行keyBy
 *
 * @param time   数据时间，1min，秒值
 * @param domain 域名
 * @param isp    运营商
 * @param a      url参数 a 的值
 */
case class ResultKey2(time: Long, domain: String, isp: String, a: String) extends Serializable



